package com.per.mybootall.socket;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;

public class TcpClient {
    public static void main(String[] args) {
        try{

            /**
             * 建立链接                                             1306m
             * */
            //创建socket
            Socket socket=new Socket("127.0.0.1",4700);
            //建立连接【从键盘读取】
            InputStreamReader Sysin=new InputStreamReader(System.in);
            BufferedReader SysBuf=new BufferedReader(Sysin);

            //建立连接【从socket读取】
            InputStreamReader Socin=new InputStreamReader(socket.getInputStream());
            BufferedReader SocBuf=new BufferedReader(Socin);

            //向socket中写
            PrintWriter SocOut=new PrintWriter(socket.getOutputStream());



            /**
             * 建立通信
             * */
           String readLine= SysBuf.readLine();

           /**
            * 这是从输入区得到的输入，如果输入。eq为over字符则将读取到的readLine字符串发送到服务器    【不为over的话就会一直和服务端发送接收发送接收】
            * */
           while(!readLine.equals("over")){
               SocOut.println(readLine);
               //刷下缓冲区
               SocOut.flush();
               System.out.println("client即将发送的消息为:"+readLine);

                //打印一下服务端的数据【reaLine在读取不到的话机就会进入阻塞状态】
               System.out.println("client接收server发送的数据为:"+SocBuf.readLine());

               //在打印服务端的返回值后再次读取控制台的输入
               readLine=SysBuf.readLine();
           }

           //关闭socket和io
            SocOut.close();
            Socin.close();
            socket.close();

        } catch (Exception e) {
            System.out.println("error:"+e);
        }
    }
}
